// 打开数据库
async function openDB(config) {

	return new Promise((callback) => {

		plus.sqlite.openDatabase({
			...config,
			success: function(e) {
				callback({
					code: 0,
					msg: '打开数据库 成功!'
				})
			},
			fail: function(e) {
				callback({
					code: 1,
					msg:  JSON.stringify(e)
				})
			}
		});
	})
}

//db是否打开
async function isOpen(config) {
	return new Promise((callback) => {
		if (plus.sqlite.isOpenDatabase(config)) {
			console.log('数据库打开了');
			callback({
				code: 0,
				msg: '已经打开数据库',
				data: true
			});
		} else {
			callback({
				code: 1,
				msg: '没有打开数据库',
				data: false
			});
		}
	});
}

// 关闭数据库
async function closeDB(config) {
	return new Promise((callback) => {

		plus.sqlite.closeDatabase({
			...config,
			success: function(e) {
				console.log('closeDatabase success!');
				callback({
					code: 0,
					msg: '关闭数据库成功。'
				});
			},
			fail: function(e) {
				callback({
					code: 1,
					msg: '关闭数据库失败：' + JSON.stringify(e)
				});
			}
		});
	});
}

// 执行SQL语句
async function executeSQL(config, sql) {

	return new Promise((callback) => {
		plus.sqlite.executeSql({
			...config,
			sql: sql,
			success: function(e) {
				callback({
					code: 0,
					msg: e
				});
			},
			fail: function(e) {
				callback({
					code: 1,
					msg: '执行SQL失败：' + JSON.stringify(e)
				});
			}
		});
	});
}

// 查询SQL语句
async function selectSQL(config, sql) {

	return new Promise((callback) => {
		plus.sqlite.selectSql({
			...config,
			sql: sql,
			success: function(data) {
				callback({
					code: 0,
					data: data,
					msg: '查询SQL成功'
				})
			},
			fail: function(e) {
				callback({
					code: 1,
					data: [],
					msg: '查询SQL失败: ' + JSON.stringify(e)
				})
			}
		});
	});

}

module.exports = {
	closeDB,
	openDB,
	isOpen,
	executeSQL,
	selectSQL
};